Model Deployment হল মডেলটি প্রস্তুত করার প্রক্রিয়া, যাতে এটি বাস্তব-জীবনে ব্যবহার করা যায় এবং নতুন ডেটার জন্য পূর্বাভাস করতে পারে। API Integration এর মাধ্যমে, আপনি আপনার মডেলটিকে একটি ওয়েব অ্যাপ্লিকেশন বা অন্য কোন সিস্টেমের সাথে যুক্ত করতে পারেন, যাতে এটি অনলাইনে সহজেই ব্যবহৃত হয়।
এখানে Flask এবং Django ফ্রেমওয়ার্ক ব্যবহার করে মডেল ডিপ্লয়মেন্ট এবং API ইন্টিগ্রেশন সম্পর্কিত কিছু উদাহরণ দেওয়া হয়েছে।
১. Flask দিয়ে Model Deployment এবং API Integration
Flask হল একটি মাইক্রো ওয়েব ফ্রেমওয়ার্ক যা সহজে API তৈরি করার জন্য ব্যবহৃত হয়। Flask দিয়ে মডেল ডিপ্লয়মেন্ট করার মাধ্যমে আপনি আপনার মডেলকে একটি RESTful API হিসেবে প্রকাশ করতে পারেন।
উদাহরণ: Machine Learning Model Deployment using Flask
ধরা যাক, আপনার কাছে একটি ট্রেনড মেশিন লার্নিং মডেল রয়েছে, যা একটি ইমেজ ক্লাসিফিকেশন কাজ করছে এবং আপনি সেটিকে API হিসেবে প্রকাশ করতে চান।
ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
pip install flask numpy scikit-learn
ধাপ ২: মডেল ট্রেনিং এবং সংরক্ষণ
প্রথমে, আপনি একটি মডেল ট্রেন করবেন এবং তারপর সেটিকে .pkl (pickle) ফরম্যাটে সংরক্ষণ করবেন।
import pickle
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
# ডেটা লোড করা এবং মডেল ট্রেনিং করা
data = load_iris()
X, y = data.data, data.target
model = RandomForestClassifier(n_estimators=100)
model.fit(X, y)
# মডেলটি পিকল ফাইলে সংরক্ষণ করা
with open('iris_model.pkl', 'wb') as file:
pickle.dump(model, file)
ধাপ ৩: Flask API তৈরি করা
এখন Flask দিয়ে API তৈরি করে মডেলটি অনলাইনে ডিপ্লয় করা যাবে।
from flask import Flask, request, jsonify
import pickle
import numpy as np
# Flask অ্যাপ্লিকেশন তৈরি
app = Flask(__name__)
# মডেল লোড করা
with open('iris_model.pkl', 'rb') as file:
model = pickle.load(file)
# রুট তৈরি করা
@app.route('/predict', methods=['POST'])
def predict():
data = request.get_json() # ইনপুট ডেটা নেওয়া
input_data = np.array(data['features']).reshape(1, -1) # ডেটা ফরম্যাট করা
prediction = model.predict(input_data) # মডেল দিয়ে পূর্বাভাস করা
return jsonify({'prediction': int(prediction[0])})
if __name__ == '__main__':
app.run(debug=True)
ধাপ ৪: API ব্যবহার করা
এখন আপনি এই API তে HTTP POST রিকোয়েস্ট পাঠিয়ে পূর্বাভাস পেতে পারবেন। উদাহরণস্বরূপ, Postman বা অন্য যেকোনো HTTP ক্লায়েন্ট ব্যবহার করে আপনার API তে রিকোয়েস্ট পাঠানো যাবে।
POST রিকোয়েস্ট:
POST http://127.0.0.1:5000/predict
Content-Type: application/json
{
"features": [5.1, 3.5, 1.4, 0.2]
}
Response:
{
"prediction": 0
}
এখানে 0 একটি ক্লাসের ইনডেক্স হবে, যা Iris ডেটাসেটের মধ্যে একটি নির্দিষ্ট শ্রেণীকে চিহ্নিত করবে।
২. Django দিয়ে Model Deployment এবং API Integration
Django একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক যা RESTful API তৈরির জন্য আরও উন্নত এবং পূর্ণাঙ্গ সমাধান প্রদান করে। Django তে মডেল ডিপ্লয়মেন্টের জন্য Django Rest Framework (DRF) ব্যবহৃত হয়।
উদাহরণ: Machine Learning Model Deployment using Django
ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
pip install django djangorestframework numpy scikit-learn
ধাপ ২: Django প্রজেক্ট এবং অ্যাপ তৈরি করা
প্রথমে একটি Django প্রজেক্ট এবং অ্যাপ তৈরি করুন:
django-admin startproject ml_project
cd ml_project
python manage.py startapp ml_api
ধাপ ৩: মডেল ট্রেনিং এবং সংরক্ষণ
মডেল ট্রেনিং এবং সংরক্ষণ আগের Flask উদাহরণের মতোই হবে। আপনি .pkl ফাইল হিসেবে মডেলটি সংরক্ষণ করবেন।
ধাপ ৪: Django API তৈরি করা
Django Rest Framework (DRF) ব্যবহার করে API তৈরি করা হবে। views.py ফাইলে কোড লিখুন:
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
import pickle
import numpy as np
# মডেল লোড করা
with open('iris_model.pkl', 'rb') as file:
model = pickle.load(file)
class Predict(APIView):
def post(self, request):
data = request.data # ইনপুট ডেটা নেওয়া
features = np.array(data['features']).reshape(1, -1)
prediction = model.predict(features)
return Response({'prediction': int(prediction[0])}, status=status.HTTP_200_OK)
ধাপ ৫: URLs কনফিগারেশন
urls.py ফাইলে API রুট সেটআপ করুন:
from django.urls import path
from .views import Predict
urlpatterns = [
path('predict/', Predict.as_view(), name='predict'),
]
ধাপ ৬: API চালানো
আপনি Django প্রজেক্ট চালানোর জন্য নিচের কমান্ডটি ব্যবহার করবেন:
python manage.py runserver
এখন, একইভাবে Postman বা অন্য HTTP ক্লায়েন্ট ব্যবহার করে আপনি POST রিকোয়েস্ট পাঠিয়ে মডেল থেকে পূর্বাভাস পেতে পারবেন।
POST রিকোয়েস্ট:
POST http://127.0.0.1:8000/predict/
Content-Type: application/json
{
"features": [5.1, 3.5, 1.4, 0.2]
}
Response:
{
"prediction": 0
}
সারাংশ
মডেল ডিপ্লয়মেন্ট এবং API ইন্টিগ্রেশন একটি গুরুত্বপূর্ণ অংশ যখন আপনি আপনার মডেলটি বাস্তব জীবনের অ্যাপ্লিকেশন বা সিস্টেমে ব্যবহার করতে চান। Flask এবং Django দুটি জনপ্রিয় ফ্রেমওয়ার্ক ব্যবহার করে আপনি সহজেই মডেলটি ওয়েব অ্যাপ্লিকেশন বা API হিসেবে প্রকাশ করতে পারেন। Flask সাধারণত ছোট এবং দ্রুত API তৈরি করার জন্য ব্যবহৃত হয়, এবং Django বড় এবং পূর্ণাঙ্গ ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য উপযুক্ত।
Read more